package com.tianyadu.mmall.exception;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;

import java.util.HashMap;
import java.util.Map;

/**
 * 控制器的异常处理器
 *
 * @author xueyj
 * @date 2019-06-06 16:07
 */
@ControllerAdvice
public class ControllerExceptionHandler {

    /**
     * 捕获处理自定义异常信息，
     * 因spring默认异常处理，除异常信息外，其他信息不会响应至前端，
     * 故此方法用来丰富扩展自定义异常信息
     *
     * @param ex 异常信息
     * @return java.util.Map<java.lang.String, java.lang.Object>
     * @author xueyj
     * @date 2019/9/21-15:51
     */
    @ExceptionHandler(UserNotExistException.class)
    @ResponseBody
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    public Map<String, Object> handleUserNotExistException(UserNotExistException ex) {
        Map<String, Object> result = new HashMap<>();
        result.put("id", ex.getId());
        result.put("message", ex.getMessage());
        return result;
    }

}